package logica;

import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;

import datas.DataNick;
import logica.Categoria;

public class Juego implements Comparable<Juego>{

	private int id;
	private String nombre;
	private String descripcion;
	private int tamanio;
	private float precio;
	private String desarrollador;
	private Set<Categoria> categorias;
	private Set<DataNick> clientes;
	@SuppressWarnings("rawtypes")
	private Map<String, Map> comentarios;

	
	@SuppressWarnings("rawtypes")
	public Juego(int id, String nombre, String descripcion, int tamanio, float precio, String desarrollador, Set<Categoria> categorias) {
		this.id = id;
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.tamanio = tamanio;
		this.precio = precio;
		this.desarrollador = desarrollador;
		this.categorias = categorias;
		clientes = new LinkedHashSet<DataNick>();
		comentarios = new LinkedHashMap<String, Map>();
	}


	public int getId() {
		return id;
	}


	public void setId(int id) {
		this.id = id;
	}


	public String getNombre() {
		return nombre;
	}


	public String getDescripcion() {
		return descripcion;
	}


	public int getTamanio() {
		return tamanio;
	}


	public float getPrecio() {
		return precio;
	}


	public String getDesarrollador() {
		return desarrollador;
	}


	public Set<Categoria> getCategorias() {
		return categorias;
	}

	

	public Set<DataNick> getClientes() {
		return clientes;
	}


	@SuppressWarnings("rawtypes")
	public Map<String, Map> getComentarios() {
		return comentarios;
	}
	
	
	@SuppressWarnings("rawtypes")
	public void setComentarios(Map<String, Map> comentarios) {
		this.comentarios = comentarios;
	}


	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + id;
		return result;
	}


	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Juego other = (Juego) obj;
		if (id != other.id)
			return false;
		return true;
	}


	@Override
	public int compareTo(Juego otro) {
		return nombre.compareTo(otro.nombre);
	}
	
}
